The present invention relates to data processing, and more specifically, to a system that allows the size of a board-specific boot ROM to be programmed.
When a user turns on the power of a data processing system, such as an embedded control system, the hardware automatically resets to begin the process of booting. The reset signal goes to all programmable circuits. In response, these circuits initialize certain essential registers, such as system configuration registers, to place the system into a known state, from which system applications may be executed. A boot read-only memory (ROM) is used to store boot data that enable the system to perform booting. The size of the boot ROM is selected to provide a sufficient space for storing boot data.
In an embedded control system, the size of a boot ROM depends on the complexity of operations to be performed by the system. A 2-Kbyte boot ROM may be sufficient for a simple embedded control system, while more complex embedded control systems require larger boot ROMs having up to 16 Mbytes of storage capacity.
To reduce the cost of a system, a manufacturer or vendor should keep the size of a boot ROM at the minimum level sufficient to support a specific embedded control system. However, different system configurations may require different sizes of the boot ROM.
Therefore, to accommodate various system configurations, it would be desirable to provide a system that allows the size of a boot ROM to be programmed during a set up procedure, depending on system applications. As a result, various system configurations would be possible using the same chip. Also, it would be possible to dynamically change the system configuration without changing the circuit design.
Accordingly, one advantage of the invention is in providing a circuit that allows the size of a boot ROM in an embedded system to be programmed during a set up procedure.
Another advantage of the invention is in providing a network interface that would accommodate various configurations of an embedded system using the same chip.
A further advantage of the invention is in providing a network controller that allows configurations of an embedded system to be dynamically changed without changing the design of the network controller.
These and other advantages of the present invention are achieved at least in part by providing a data communications device for supporting interface between communications media and an embedded system that has an embedded controller, an extension ROM, and an EEPROM programmable with ROM size data representing a selected size of the extension ROM. The communications device has a bus interface for providing interface with the embedded controller via a data bus, and an EEPROM interface for providing interface with the EEPROM. A ROM range register is coupled to the EEPROM interface for receiving the ROM size data from the EEPROM. A ROM base address register is coupled to the bus interface for receiving a predetermined value from the embedded controller. A logic circuit is coupled to the ROM range register and the ROM base address register for performing a logic operation on their values. In response to an output value of the logic circuit, the embedded controller determines the selected size of the extended ROM. For example, the extended ROM may comprise a boot ROM for storing data required for booting the embedded system.
In accordance with one aspect of the invention, the ROM range register may be loaded by the ROM size data during a power up procedure. If the EEPROM is absent, the ROM range register remains at its default value. If the extended ROM is absent, the ROM range register receives preset ROM size data from the EEPROM indicating that the size of the extended ROM is equal to 0.
In accordance with a method of the present invention the following steps are carried out to program the size of the extended ROM:
programming the EEPROM with ROM size data representing the size of the extended ROM selected in accordance with system requirements,
loading the ROM range register with the ROM size data from the EEPROM,
writing a predetermined value into the ROM base address register,
performing a logic operation on values held in the ROM range register and the ROM base address register to produce a ROM size value representing the selected size of the extended ROM, and
providing the embedded controller with the produced ROM size value.
In accordance with another aspect of the invention, a data processing system comprises a network interface device, an embedded controller, an extended ROM, and an EEPROM programmable with ROM size data representing the size of the extended ROM selected in accordance with system requirements. The network interface device has a first register coupled to the EEPROM for receiving the ROM size data, a second register coupled to the embedded controller for receiving a predetennined value, and a logic circuit for performing a logic operation on values held in the first and second registers for producing an output value indicating the selected size of the extended ROM. The output value may be supplied to the embedded controller to assign in the network interface a memory space sufficient for holding information from the extended ROM of the selected size.
Still other objects and advantages of the present invention will become readily apparent to those skilled in this art from the following detailed description, wherein only the preferred embodiment of the invention is shown and described, simply by way of illustration of the best mode contemplated of carrying out the invention. As will be realized, the invention is capable of other and different embodiments, and its several details are capable of modifications in various obvious respects, all without departing from the invention. Accordingly, the drawings and description are to be regarded as illustrative in nature, and not as restrictive.